It has become widely recognized that random number generators are fundamentally important in the computer age. Random number generators may be divided into two types: true random number generators, which generate numbers from a non-deterministic source, and pseudorandom number generators, which generate numbers from a deterministic algorithm. A high quality random number generator to generate true random numbers is desirable for cryptographic applications. For example, true random numbers are used as an encryption key for encrypting information and messages.
While pseudorandom number generators are suitably fast for a computer, they cannot generate a true random number because they are generated by algorithms which are deterministic, i.e., they are predictable given knowledge of the algorithm used. On the other hand, instead of relying upon a deterministic algorithm, true random number generators generally use at least one of a variety of physical phenomena (e.g., a thermal noise, an avalanche noise, an optical noise, etc.) as a random number source to generate random numbers. For example, a true number generator may use a thermal noise generated by a resistor, and further amplify the thermal noise as a random voltage source.
Since the physical phenomena being used as a random number source are typically in a non-digital form (e.g., an analog signal, a time-domain signal, etc.), the existing true random number generators are required to use additional circuit(s) to further process information from the random number source from a non-digital form to a digital form. Such further processes may disadvantageously affect a performance of the existing true random number generators, for example, a randomness level of generated random numbers. Thus, the existing random number generators have not been satisfactory in every aspect.